#ifndef MSNDEF_H
#define MSNDEF_H

#include "tux.h"

/*
enum{
    TREE_ICON_NLN = 0,
    TREE_ICON_BSY,
    TREE_ICON_IDL,
    TREE_ICON_BRB,
    TREE_ICON_AWY,
    TREE_ICON_HDN,
    TREE_ICON_OFF,
    TREE_ICON_GROUP,
    TREE_ICON_GROUP_OPEN
};
*/

/*
enum{
    TREE_ICON_ONLINE = 0,
    TREE_ICON_BUSY,
    TREE_ICON_AWAY,
    TREE_ICON_OFFLINE,
    TREE_ICON_GROUP_CLOSE,
    TREE_ICON_GROUP_OPEN
};
*/


enum{
    ICON_CONTACT_ONLINE = 0,
    ICON_CONTACT_BUSY,
    ICON_CONTACT_AWAY,
    ICON_CONTACT_OFFLINE,
	ICON_CONTACT_BLOCKED,
	ICON_CONTACT_NEWMSG,
	ICON_CONTACT_MULTI,
    ICON_GROUP_CLOSE,
    ICON_GROUP_OPEN
};

enum MsnListType
{
    FORWARD = 0x01,
    ALLOWED = 0x02,
    BLOCKED = 0x04,
    REVERSED= 0x08
};

enum{
	MSN_CONNECTION_DIRECT = 0,
	MSN_CONNECTION_HTTP,
	MSN_CONNECTION_HTTP_PROXY
};


const wxString MSN_TCP_SERVER_ADDRESS = _T("Messenger.hotmail.com");
const int MSN_TCP_SERVER_PORT = 1863;

//const wxString MSN_HTTP_SERVER_ADDRESS = _T("gateway.messenger.hotmail.com");
const wxString MSN_HTTP_SERVER_ADDRESS = _T("gateway.edge.messenger.live.com");

const int Msn_HTTP_SERVER_PORT = 80;


const int MSN_P2P_APP_ID_FILE_TRANSFER = 2;
const int MSN_P2P_APP_ID_DISPLAY_PICTURE = 12;

const wxString MSN_P2P_EUF_GUID_DISPLAY_PICTURE = _T("{A4268EEC-FEC5-49E5-95C3-F126696BDBF6}");
const wxString MSN_P2P_EUF_GUID_FILE_TRANSFER = _T("{5D3E02AB-6190-11D3-BBBB-00C04F795683}");

const int MSN_P2P_BINARY_FLAG_DISPLAY_PICTURE = 0x20;
const int MSN_P2P_BINARY_FLAG_FILE_TRANSFER = 0x01000030;

const int MSN_P2P_DATA_PACKET_LENGTH = 1352;


class MsnDef
{
public:

	static int MSN_FILE_TRANSFER_PORT;

	static int MSN_MESSAGE_MAX_LENGTH;

	static int MSN_P2P_DATA_MAX_LENGTH;

    static int STATUS_COUNT;
    static wxString STATUS_DESC_ARRAY[8];
    static wxString STATUS_CODE_ARRAY[8];

	static wxImageList ICON_LIST;

	static void InitText();

	static void InitIconList();

    static wxString GetStatusDesc(const wxString& code);

    static int GetStatusIndex(const wxString& code);

    static int GetStatusIconIndex(const wxString& code);

    static wxString GetStatusIconFile(const wxString& code);

	static wxImageList* GetIconList();

	static int GetListCode(const wxString& listType);

};

#endif



